Marc BUFFAT

Professeur au département de Mécanique, Lyon 1 e-mail contact

Blog scientifique et pédagogique utilisant des notebooks IPython et Linux

Utilisation de Jupyter dans mes enseignements en Mécanique


Retour d’expériences en 2023

Professeur au département Mécanique de l’université Claude Bernard Lyon 1, j’enseigne la mécanique des fluides, les méthodes numériques, la modélisation et le calcul numérique pour des étudiants de niveau Licence et Master. Dans mes enseignements j’utilise Python et les notebooks IPython depuis plus d’une dizaine d’années avec un système de serveurs Jupyter-nbgrader, mis en place initialement au département mécanique et qui est maintenant généralisé à toute l’université dans le cadre du projet Include.

Dans cette note, je décris mon retour d’expérience en 2023 sur l’utilisation pédagogique de cet outil.

Objectifs pédagogiques

L’utilisation du langage Python et des notebooks Ipython correspond aux objectifs pédagogiques suivants dans mes enseignements au département Mécanique.

  1. Apprentissage d’une méthode (et pas d’un langage)
    • en privilégiant une approche algorithmique
    • et l’utilisant approche scientifique (rigueur, validation)
  2. Maîtrise de l’utilisation de l’informatique scientifique
    • pour du traitement de données
    • pour comprendre la modélisation et la simulation
    • pour l’analyse des données d’expériences ou de simulation
  3. Apprentissage pas forcement axé sur le développement de code informatique!

Approche pédagogique

L’approche pédagogique utilisée est inspirée des pratiques anglo-saxones du “learning by doing” et du “Constructionism” de Seymour Papert (MIT 1980) (créateur du langage Logo et de son célèbre robot tortue):

What comes first, “using” or “understanding”? The natural mode of learning is to first use, leading slowly to understanding.

Cette approche part aussi du constat actuel d’une inculture en informatique de beaucoup d’étudiants en licence (en mécanique). Pourtant ces étudiants sont utilisateurs chevronnés de tous les nouveaux outils numériques en particulier sur smart-phones, mais sans chercher à comprendre le fonctionnement des outils qu’ils utilisent. De plus un certain nombre de ces étudiants sont allergiques à la programmation informatique, telle qu’elle leur a été enseigné.

C’est la raison pour laquelle je privilégie une forme d’apprentissage par problème qui est:

  • simple à mettre en oeuvre dans un environnement Jupyter / Python
  • et dans laquelle j’insiste sur l’utilisation d’une méthode scientifique, alliant rigueur et validation.

Cette approche s’inspire aussi du travail d’une équipe d’universitaires autour de Lorena A. Barba, professeur à l’université de Washington, qui a regroupé dans un livre en ligne, des pratique pédagogiques innovantes utilisant l’environnement Jupyter:

Environnement d’apprentissage

L’environnement d’apprentissage utilise des serveurs Jupyter nbgrader, avec un système de gestion de cours, est accessible 24h/24jh avec un simple navigateur et ne nécessite aucune installation de logiciels ni de processeurs puissants, mais uniquement une connexion internet même à faible débit. Cet environnement permet très simplement à l’enseignant de partager et échanger des documents (notebooks, programmes, data, ..) avec ses étudiants et même les évaluer.

Notebooks pour des TPs numériques

Ma première utilisation des notebooks Jupyter a été faite dans le cadre de TP numériques, où l’on demande aux étudiants de mettre en pratique des méthodes vues en cours. Le format des notebooks permet d’allier du texte (consignes), des images (illustrations) et des cellules de code (que l’on peut fournir aux étudiants ou demander d’écrire) et il est particulièrement bien adaptée à ce type d’utilisation.

La figure suivante présente un exemple de TP sur le traitement de données pour des étudiants de Licence L2. Le travail demandé aux étudiants est la prédiction de la hausse moyenne des températures terrestres à une date fixée en utilisant un traitement approprié de données brutes qui leurs sont fournies et qui sont individualisées automatiquement. Les étudiants doivent lire ces données, puis effectuer un lissage de ces données pour en déduire un loi simple permettant une prédiction de la hausse des température à une date fixée dans le futur (différente pour chaque étudiant).

Notebook de TP sur le traitement de données

Le système de serveurs de cours permet de fournir les données aux étudiants ainsi qu’un canevas (notebook) et récupérer ensuite le travail des étudiants en particulier leurs comptes rendus. Le notebook complet du TP est disponible sur mon site professionnel ici:

Notebook d’illustrations interactives

J’utilise aussi les notebooks jupyter pour expliquer aux étudiants des expériences avec un modèle mathématique, des simulations numériques, des visualisations et des analyses. La encore le format des notebooks Jupyter est très bien adapté à ce format d’exemple démonstratif, que l’étudiant peut s’approprier.

Une illustration est donnée sur la figure ci-dessous, avec un notebook explicatif à destination d’étudiants en première année de licence sur la danse des pendules (“swinging pendulum”). Le notebook montre comment à partir de l’étude du pendule simple, on peut construire pas à pas un modèle avec n pendules qui reproduit l’expérience et surtout explique les mouvements observés.

Notebook sur la danse des pendules

Le notebook complet est disponible ici et a servi aussi à créer une vidéo:

Notebook de cours

J’utilise maintenant de plus en plus les notebooks durant mes séances de cours pour rendre ces séances plus interactives et susciter la participation des étudiants. Pour cela je demande à mes étudiants de venir si possible avec un PC, une tablette ou un smart phone, et je met à leur disposition sur le serveur Jupyter-nbgrader un notebook à trous sur le chapitre du cours à traiter. Je déroule ensuite le notebook (en mode présentation) avec des explications et je fais certains calculs dans des cellules vides avec les étudiants (en utilisant soit du calcul formel, du calcul numérique ou de la visualisation).

C’est ainsi qu’en Master, je présente la théorie explicative de la portance d’une aile. Cette théorie fait appel à une théorie mathématique relativement ardue (fonctions holomorphes, transformation conforme), que je ne démontre pas complètement, mais que j’utilise pour montrer que l’écoulement autour d’un profil d’aile peut être obtenu comme combinaison linéaire d’écoulements élémentaires autour d’un cylindre en rotation. Je donne ensuite la transformation conforme en insistant sur les bonnes conditions à imposer (condition de Kutta-Joukovski) pour d’obtenir l’écoulement autour du profil en incidence. La figure suivante illustre une partie de ce notebook.

Notebook sur la théorie de l'aile

Notebook pour des TP virtuels

Les notebooks se prêtent aussi à la création de TP virtuels, que les étudiants peuvent faire en autonomie.

Ainsi dans le cadre de mon cours de mécanique des fluides approfondies en licence, j’ai crée un TP virtuel reproduisant un TP expérimental sur la mesure de portance d’une aile (TP expérimental que l’on avait pas la possibilité d’installer au département). Comme pour le TP expérimental, l’étudiant choisit les réglages pour les mesures (vitesse de débit, angle d’incidence). Il récupère les mesures de pression en des points du profil, pour ensuite les traiter pour obtenir la force de portance et la force de traînée en fonction de l’incidence (et du nombre de Reynolds).

Ce TP virtuel utilise un outil de simulation numérique, qui permet à chaque étudiant d’étudier un profil différent. Intégrer à la plateforme Jupyter, ce TP peut être fait en autonomie à distance. Il utilise un notebook explicatif avec une interface streamlit pour les réglages de l’expérience et la génération des mesures. La figure ci-dessous montre une partie de l’interface de mesure.

Notebook sur un TP virtuel de mesures de portance

Livres interactifs Jupyter-book

Il existe maintenant un nouvel outil jupyter book, qui permet de valoriser les ressources pédagogiques développées avec les notebooks. Ainsi à partir des notebooks d’un cours, il est possible de créer un livre interactif de qualité. J’ai ainsi crée, à partir de mes notebooks d’enseignement, dont certains datent de plus d’une dizaine d’années, des livres de cours interactifs pour mes différents cours dont vous trouverez des exemples ici sur ma page professionnelle:

Conclusion

J’espère que cet aperçu (limité) d’utilisation pour l’enseignement de cet environnement Jupyter-nbgrader, a pu démontrer la versatilité de cet outil. Son plus grand intérêt, de mon point de vue, est que son utilisation peut s’adapter aux besoins pédagogiques spécifiques de chaque enseignant, car c’est un système ouvert. Il est en effet constitué d’un ensemble de logiciels libres, développés par une large communauté scientifique internationale très activei, à la fois pour des applications pédagogiques mais aussi de recherche.

Références

  1. Lorena A. Barba et al., 2019, “Teaching and Learning with Jupyter”, url: https://jupyter4edu.github.io/jupyter-edu-book/notebooks-in-teaching-and-learning.html

  2. EPFL, “Jupyter Notebooks For Education”, url: https://www.epfl.ch/education/educational-initiatives/jupyter-notebooks-for-education

  3. M. Buffat,”Exemples de Notebooks en Mécanique”, url: https://perso.univ-lyon1.fr/marc.buffat

  4. Jupyter book”, “Build beautiful, publication-quality books and documents from computational content”, url: https://jupyterbook.org

  5. M. Buffat, T. Dupriez, S. Di Loretto, JupyterCon 2023, Paris Mai 2023, “Flexible course management and validation system using Jupyterhub with additional services using Flask”